package com.rf.richfitwheel.admin.sys.dao;

import com.rf.richfitwheel.admin.sys.model.User;
import com.rf.richfitwheel.admin.sys.model.UserExample;
import java.util.List;
import java.util.Map;

import com.rf.richfitwheel.admin.sys.vo.UserVO;
import org.apache.ibatis.annotations.Param;

public interface UserMapper {
    long countByExample(UserExample example);

    int deleteByExample(UserExample example);

    int deleteByPrimaryKey(String id);

    int insert(UserVO record);

    int insertSelective(User record);

    List<User> selectByExample(UserExample example);

    User selectByPrimaryKey(String id);

    int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example);

    int updateByExample(@Param("record") User record, @Param("example") UserExample example);

    int updateByPrimaryKeySelective(User record);

    int updateByPrimaryKey(UserVO record);

    /**
     * 查询用户信息
     * @param paramsNew
     */
    List<Map<String, Object>> selectByParams(Map<String, Object> paramsNew);

    /**
     * 根据用户id查询用户资源权限
     * 
     * @param id
     * @return
     */
    List<Map<String, Object>> getResourcesByUserId(String id);

    /**
     * 根据orgCode查询没同步的用户（来自账户系统的数据）
     * @param orgCode
     * @return
     */
    List<Map<String, Object>> selectListTemp(String orgCode);

    /**
     * 根据id查询需要同步的用户数据
     * @param list
     * @return
     */
    List<Map<String, Object>> selectListFromAccountTemp(List<Object> list);
    
    /**
     * 查询用户信息,管理员使用，可查询逻辑删除的记录
     * @param paramsNew
     */
    List<Map<String, Object>> selectByParamsAdmin(Map<String, Object> paramsNew);
}